www.gusucode.com > 用于人脸识别和人脸定位的主动形状模型(asm)matlab工具箱 > asm toolbox\GetImagePyramid.m

    %%%%%%%%%%%%%%%%%%%%%%%%%%
%(c) Ghassan Hamarneh 1999
%%%%%%%%%%%%%%%%%%%%%%%%%%
function ImagePyramid=GetImagePyramid(Img,NumPyramidLevels);
%function ImagePyramid=GetImagePyramid(Img,NumPyramidLevels);

FLTR =[
    0.1250    0.6250    1.0000    0.6250    0.1250
    0.6250    3.1250    5.0000    3.1250    0.6250
    1.0000    5.0000    8.0000    5.0000    1.0000
    0.6250    3.1250    5.0000    3.1250    0.6250
    0.1250    0.6250    1.0000    0.6250    0.1250];
 
 FLTR=FLTR/sum(sum(FLTR));
 
 %as suggested by Cootes et al. in proc. of the 5th british machine vision conference
 %vol 1 pp327-336, 1994

if nargin==1 NumPyramidLevels=GetNumPyramidLevels(size(Img)); end
ImagePyramid=cell(NumPyramidLevels,1);
ImagePyramid{1}=double(Img);

for ind1=2:NumPyramidLevels,
   orgImg=ImagePyramid{ind1-1};
   filteredImg=filter2(FLTR,orgImg,'valid');
   ImagePyramid{ind1}=filteredImg(1:2:end,1:2:end);%subsample the filtered image
end